package marseillaisdu90.modele;
/**
 * Cette classe construit un objet RechercheObjet elle permet de retourner les chaines de caractères a affiché
 * dans la boite de dialogue.
 * @author jose
 *
 */
public class RechercheObjet extends Epreuve{

	private String nom_obj;
	private int posXfinal;
	private int posYfinal;
	private int nopiece;
	private int Nbpoints;
	String chx_img;
	private boolean deja_chercher;
	private Personnage personnage;
	private int num_messagetermine;
	private int num_messagerecherche;
	
	
/**
 * Constructeur qui initialise les attributs
 * @param numero numéro de la recherche
 * @param nom nom de la recherche
 * @param nom_obj nom de l'objet recherché
 * @param nom_perso nom du personnage auquel il faut apporter l'objet
 * @param image_perso image du personnage auquel il faut apporter l'objet
 * @param num_messagerecherche numero du message à afficher au début de la recherche
 * @param num_messageperso numero du message à afficher lorsque le joueur interagit avec le personnage à qui il faut apporter l'objet
 * @param num_messagetermine numero du message à afficher lorsque le joueur a terminé la recherche
 * @param posXfinal position en X du personnage auquel il faut apporter l'objet
 * @param posYfinal position en Y du personnage auquel il faut apporter l'objet
 * @param nopiece numero de la pièce
 * @param Nbpoints nombre de point à ajouter au joueur si il gagne
 */
	public RechercheObjet(int numero, String nom, String nom_obj, String nom_perso, int image_perso,int num_messagerecherche, int num_messageperso, int num_messagetermine, int posXfinal, int posYfinal, int nopiece, int Nbpoints) {
		
		super(numero, nom);
		this.nom_obj=nom_obj;
		this.posXfinal=posXfinal;
		this.posYfinal=posYfinal;
		this.nopiece=nopiece;
		this.Nbpoints=Nbpoints;
		this.chx_img=/*"img/object/*/"big_"+nom_obj/*+".png"*/;
		this.deja_chercher=false;
		this.num_messagetermine=num_messagetermine;
		this.num_messagerecherche=num_messagerecherche;
		personnage=new Personnage(nom_perso,"",posXfinal,posYfinal,image_perso,"Message",num_messageperso);
		
		
	}
	/**
	 *  Méthode permettant de savoir si la recherche objet réussit ou non.
	 * @param nopiececourante Numéro de la pièce courante.
	 * @param posX Position en X dans la pièce courante
	 * @param posY  Position en Y dans la pièce courante.
	 * @param Direction Direction du joueur
	 * @return un booleen.
	 */
	public boolean estReussi(int nopiececourante, int posX, int posY, String Direction) {
		
		if(nopiece==nopiececourante) {
			if ( (posXfinal==posX+1 && posYfinal==posY && Direction=="Droite") ||
				 (posXfinal==posX-1 && posYfinal==posY && Direction=="Gauche") ||
				 (posXfinal==posX && posYfinal==posY+1 && Direction=="Bas") ||
				 (posXfinal==posX && posYfinal==posY-1 && Direction=="Haut")  )
					return true;
			else
				return false;
		}
		else
			return false;
		
	}
	/**
	 * Pour obtenir le nom
	 * @return nom de la recherche
	 */
	public String getNom(){
		return nom;
	}
	/**
	 * Méthode retournant le nom de l'objet.
	 * @return nom_obj 
	 */
	public String getNom_obj(){
		return nom_obj;
	}
	/**
	 * Méthode retournant le chemin de l'image sous forme de caractère.
	 * @return chx_img
	 */
	public String getchxImg(){
		return chx_img;
	}
	/**
	 * lorsqu'on a  trouver un objet on fait appel à cette méthode
	 * qui met la variable deja_trouver a true.
	 */
	public void esttrouver() {
		
		deja_chercher=true;
	
	}
	/**
	 * Méthode qui permet de savoir si on a déjà rechercher cet objet
	 * @return deja_chercher (de type booleen). 
	 */
	public boolean dejaPose() {
	
		return deja_chercher;
		
	}
	/**
	 * Retourne la position en X. du joueur.
	 * @return posXfinal.
	 */
	public int getPosXfinal() {
		
		return posXfinal;
		
	}
	/**
	 * Retourne la position en Y. du joueur
	 * @return posYfinal
	 */
	public int getPosYfinal() {
		
		return posYfinal;
		
	}
	/**
	 * retourne le numéro de la pièce où est le joueur
	 * @return nopiece 
	 */
	public int getPiece() {
		
		return nopiece;
		
	}
	/**
	 * Pour obtenir le Personnage de la recherche
	 * @return personnage de la recherche
	 */
	public Personnage getPerso() {
		
		return personnage;
		
	}
	/**
	 * Pour obtenir le numéro du message affiché lorsqu'on a réussi la recherche
	 * @return numéro du message affiché
	 */
	public int getNumMessageTermine() {
		
		return num_messagetermine;
		
	}
	
	/**
	 * Pour obtenir le numéro du message affiché au début d'une recherche
	 * @return numéro du message affiché
	 */
	public int getNumMessageRecherche() {
	
		return num_messagerecherche;
	}

}
